package com.sugon.service;

import com.sugon.entity.ModuleSpPurchasingBatchEntity;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * 模具型芯备件采购批次信息Service接口
 *
 * @author sugon
 * @date 2021-10-13 09:58:53
 */
public interface ModuleSpPurchasingBatchService {

    /**
     * 实时更新型芯采购批次车间库存状态：已使用、未使用
     *
     * @return
     */
    boolean realtimePurchasingBacthStockState();

    /**
     * 获取模具型芯备件唯一码查询出当前型芯属于哪一采购批次的信息
     *
     * @param moldSparePartsUniqueCode 模具型芯备件唯一码
     * @return
     */
    ModuleSpPurchasingBatchEntity queryBySpUniqueCode(String moldSparePartsUniqueCode);

    /**
     * 根据主键查询实体
     *
     * @param id 主键
     * @return 实体
     */
    ModuleSpPurchasingBatchEntity queryObject(String id);

    /**
     * 分页查询
     *
     * @param map 参数
     * @return list
     */
    List<ModuleSpPurchasingBatchEntity> queryList(Map<String, Object> map);

    /**
     * 分页统计总数
     *
     * @param map 参数
     * @return 总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 保存实体
     *
     * @param moduleSpPurchasingBatch 实体
     * @return 保存条数
     */
    int save(ModuleSpPurchasingBatchEntity moduleSpPurchasingBatch);

    /**
     * 根据主键更新实体
     *
     * @param moduleSpPurchasingBatch 实体
     * @return 更新条数
     */
    int update(ModuleSpPurchasingBatchEntity moduleSpPurchasingBatch);

    /**
     * 根据主键删除
     *
     * @param id
     * @return 删除条数
     */
    int delete(String id);

    /**
     * 根据主键批量删除
     *
     * @param ids
     * @return 删除条数
     */
    int deleteBatch(String[] ids);

    /**
     * 导入模具采购批次数据
     *
     * @param excelInputStream
     * @return
     * @throws Exception
     */
    int importMoldPurchaseBatchData(InputStream excelInputStream) throws Exception;
}
